﻿using CTS.Com.Domain.Helper;
using CTS.W._150101.Models.Domain.Logic.Admin.Master.Categories.Entry;
using CTS.W._150101.Models.Domain.Model.Admin.Master.Categories.Entry;
using CTS.W._150101.Models.Domain.Model.Admin.Master.Categories.List;

namespace CTS.W._150101.Models.Domain.Logic.Admin.Master.Categories.List
{
    /// <summary>
    /// UpdateLogic
    /// </summary>
    public class UpdateLogic
    {
        #region Execute Method
        /// <summary>
        /// Xử lý update.
        /// </summary>
        /// <param name="inputObject">DataModel</param>
        /// <returns>DataModel</returns>
        public UpdateDataModel Execute(UpdateDataModel inputObject)
        {
            // Kiểm tra thông tin
            Check(inputObject);
            // Cập nhật thông tin
            var resultObject = UpdateInfo(inputObject);
            // Kết quả trả về
            return resultObject;
        }
        #endregion

        #region Private Method
        /// <summary>
        /// Kiểm tra thông tin.
        /// </summary>
        /// <param name="inputObject">DataModel</param>
        private void Check(UpdateDataModel inputObject)
        {
        }

        /// <summary>
        /// Cập nhật thông tin.
        /// </summary>
        /// <param name="inputObject">DataModel</param>
        /// <returns>DataModel</returns>
        private UpdateDataModel UpdateInfo(UpdateDataModel inputObject)
        {
            // Khởi tạo biến cục bộ
            var updateResult = new UpdateDataModel();
            var saveModel = new SaveDataModel();
            var saveLogic = new SaveLogic();
            // Map dữ liệu
            DataHelper.CopyObject(inputObject, updateResult);
            // Gán dữ liệu vào đối tượng lưu
            saveModel.IsUpdateAll = true;
            saveModel.ListDataLocale = inputObject.ListData;
            // Tiến hành update
            saveLogic.Execute(saveModel);
            // Gán giá trị trả về
            updateResult.Messages.Add(MessageHelper.GetMessage("I_MSG_00004"));
            // Kết quả trả về
            return updateResult;
        }
        #endregion
    }
}
